package com.dqyt.khjc.service;

import com.dqyt.common.check.CheckTool;
import com.dqyt.common.constant.AuthorityID;
import com.dqyt.common.utils.UserInfoUtil;
import com.dqyt.khjc.bean.LoginHistory;
import com.dqyt.khjc.bean.RespPageBean;
import com.dqyt.khjc.bean.ResultMsg;
import com.dqyt.khjc.bean.User;
import com.dqyt.khjc.mapper.LoginHistoryMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
 * 登陆历史记录
 */
@Service
public class LoginHistoryService {

    @Autowired
    private LoginHistoryMapper loginHistoryMapper;

    /**
     *分页查询 登陆历史记录
     * @param request
     * @param page
     * @param size
     * @param userName  用户昵称
     * @param userPhone  用户手机
     * @param userAccount  用户账号
     * @return
     */
    public ResultMsg getLogHisListPage(HttpServletRequest request, Integer page, Integer size,String userName,String userPhone,String userAccount){
        ResultMsg ret = new ResultMsg(); // 声明一个返回值
        try {
            // 检查用户是否登录Token是否正确
            ret = UserInfoUtil.isAuthori_Web(request);
            // 如果有错误信息
            if (ret != null) {
                return ret;
            }
            ret = new ResultMsg(); // 声明一个返回值
            // 权限检查
            // 首先取得用户信息
            User user = UserInfoUtil.getUser_Web(request);
            // 用户权限检查 是否可以管理  系统设置 - 登陆追踪
//            if (!CheckTool.checkAuthority(user, AuthorityID.XTSZ_DLZZ)) {
//                ret.setCode(ResultMsg.ERROR);
//                ret.setMsg("你没有对应的操作权限");
//                return ret;
//            }

            if (page != null && size != null) {
                page = (page - 1) * size;
            }
            List<LoginHistory> data = loginHistoryMapper.getLogHisListPage(page,size,userName,userPhone,userAccount);
            Long total =  loginHistoryMapper.getTotalNumber(userName,userPhone,userAccount);
            RespPageBean bean = new RespPageBean();
            bean.setData(data);
            bean.setTotal(total);
            ret.setCode(ResultMsg.SUCESS);
            ret.setData(bean);
        }catch (Exception e) {
            ret.setCode(ResultMsg.ERROR);
            ret.setMsg("未知的错误，请稍候再试！");
            e.printStackTrace();
        }
        return ret;
    }

}
